package formal.array;

/**
 * @author DengYuan2
 * @create 2021-02-09 20:51
 */
public class M_769 {
    public static void main(String[] args) {
//        int[] arr={4,3,2,1,0};
        int[] arr={2,0,1};
//        int[] arr={3,2,0,1};
//        int[] arr = {1, 0, 3, 2, 4};
        int res = maxChunksToSorted(arr);
        System.out.println(res);
    }

    /**
     * 我的写法一直是错的，因为没有思路啊
     * 当遍历到第i个位置时，如果可以切分为块，那前i个位置的最大值一定等于i。
     *  否则，一定有比i小的数划分到后面的块，那块排序后，一定不满足升序。
     * @param arr
     * @return
     */
    public static int maxChunksToSorted(int[] arr) {
        int count=0;
        int max=0;
        for (int i = 0; i < arr.length; i++) {
            max=Math.max(max,arr[i]);
            if (max==i){
                count++;
            }
        }
        return count;
    }

}
